簡介
SAC(Single Assignment C)是一門嚴格的純函式式程式語言,以滿足數值計算領域的需求為主要目的。怎樣實現對多維數組的高效計算是SAC的核心部分。效率在程式設計領域可以有兩方面的理解。一方面是提供高級的數組運算操作,以加快開發程式,另一方面是在某種模式下最佳化編譯程式,以減少其所需的運行時間和存儲容量。作為一門成功的計算機語言,必須滿足第二個條件。
為了能夠編譯出高效的可執行代碼,某些對數值計算不重要的函式式語言的特徵(到目前為止)還不被SAC支持,比如高階函式(higher-order functions),多態(polymorphism),以及惰性求值(lazy evalution)。而像Haskell、Clean、Miranda或者ML卻擁有這些特徵。
特點
怎樣實現對多維數組的高效計算是SAC的核心部分。效率在程式設計領域可以有兩方面的理解。一方面是提供高級的數組運算操作,以加快開發程式,另一方面是在某種模式下最佳化編譯程式,以減少其所需的運行時間和存儲容量。作為一門成功的計算機語言,必須滿足第二個條件。
為了能夠編譯出高效的可執行代碼,某些對數值計算不重要的函式式語言的特徵(到目前為止)還被SAC支持,比如高級函式(higher-order functions),多態性(polymorphism),以及懶惰計算法(lazy evalution)。而像Haskell、Clean、Miranda 或者 ML卻擁有這些特徵。
APL語言
APL是 A Programming Language或 Array Processing Language的縮寫。肯尼斯·艾佛森在1962年設計這個語言時他正在哈佛大學工作,1979年他因對數學表達式和程式語言理論的貢獻而得到圖靈獎。在過去數十年的使用歷史中,APL 從它的原始版本開始不斷改變和發展,今天的版本與1963年發表時的版本已經非常不一樣了。但它始終是一種解釋執行的計算機語言。現代的 APL 版本支持其初始版本不支持的結構和模式編程。APL 至今依然使用一種非標準化的字母表,這一直是他人對 APL 的批評。
函式程式語言
函式式編程(英語: functional programming)或稱 函式程式設計,又稱 泛函編程,是一種編程典範,它將電腦運算視為數學上的函式計算,並且避免使用程式狀態以及易變對象。函式程式語言最重要的基礎是λ演算(lambda calculus)。而且λ演算的函式可以接受函式當作輸入(引數)和輸出(傳出值)。
比起指令式編程,函式式編程更加強調程式執行的結果而非執行的過程,倡導利用若干簡單的執行單元讓計算結果不斷漸進,逐層推導複雜的運算,而不是設計一個複雜的執行過程。